﻿using System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using BDSUETableAdapters;

/// <summary>
/// Summary description for GestionarPracticas
/// </summary>
public class GestionarPracticas
{
    PracticaTableAdapter practica;

    public GestionarPracticas()
    {
        practica = new PracticaTableAdapter();
    }

    public bool CrearPractica(int idSolicitudPractica, int idPeriodoPracticas, string ProgramaAcademico, string Observaciones, string EstadoPractica, string FechaInicio, string FechaCierre)
    {
        if (practica.Guardar(idSolicitudPractica, idPeriodoPracticas, null, ProgramaAcademico, null, Observaciones, EstadoPractica, FechaInicio, FechaCierre) == 1)
            return true;
        return false;
    }

    public bool ModPracticaEspecifica(int idPractica, int idPeriodoPracticas, int idConvenio, string ProgramaAcademico, string nomUsPracticante, string Observaciones, string EstadoPractica, string FechaInicio, string FechaCierre)
    {
        int estado=0;
        estado += practica.Actualizar(idPeriodoPracticas, ProgramaAcademico, Observaciones, EstadoPractica, FechaInicio, FechaCierre, idPractica);
        if (idConvenio != 0)
            estado+=practica.ActualizarConvenion(idConvenio, idPractica);
        if (nomUsPracticante != string.Empty)
            estado += practica.ActualizarPracticanteAsig(nomUsPracticante,idPractica);
        if (estado == 0)
            return false;
        else
            return true;
    }

    public bool ElimPracticaEspecifica(int IdPractica)
    {
        if (practica.Eliminar(IdPractica) == 1)
            return true;
        return false;
    }

    public DataTable ObtPracticaEspecifica(int IdPractica)
    {
        return practica.ObtPracticaEspecifica(IdPractica);
    }

    public DataTable BusquedaAvanzada(string ProgramaAcademico, string NomUsrPracticante, string nitEmpresa, string estadoPractica, int IdPeriodoPractica)
    {
        List<string> criterios = new List<string>();

        if (ProgramaAcademico != "ninguno" && ProgramaAcademico != string.Empty)
            criterios.Add("ProgramaAcademico_nombrePrograma like '%" + ProgramaAcademico + "%'");

        if (NomUsrPracticante != string.Empty)
            criterios.Add("Usuario_nombreUsuario like '%" + NomUsrPracticante + "%'");

        if (nitEmpresa != "ninguno" && nitEmpresa != string.Empty)
            criterios.Add("Empresa_nit like '%" + nitEmpresa + "%'");

        if (estadoPractica != "ninguno" && estadoPractica != string.Empty)
            criterios.Add("estadoPractica like '%" + estadoPractica + "%'");

        if (IdPeriodoPractica != 0)
            criterios.Add("PeriodoPracticas_idPeriodo =" + IdPeriodoPractica);

        string filtro = string.Join(" AND ", criterios.ToArray());

        DataTable todos = practica.ObtTodas();
        DataRow[] dtrow = todos.Select(filtro);
        DataTable resultado = new DataTable();
        resultado = todos.Clone();
        foreach (DataRow dtr in dtrow)
            resultado.ImportRow(dtr);
        return resultado;
    }
}